package 时间相关类;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class DateTimeFormatter类 {
    public static void main(String[] args) throws ParseException {
        /*
        DateTimeFormatter和DateFormat
        1.这两个类都是用于对时间的格式化的,DateTimeFormatter是在JDK8引入的
        在线程方面来说DateFormat是线程不安全的.
        2.DateFormat主要是用于Date类的,而DateTimeFormatter则是用于JDK8引入的时间类,
          如LocalDateTime等.
        3.DateFormat是一个抽象类,所以在格式化时间的时候不能进行时间的格式化,使用子类
        3.Date的时间类是不可以进行时间的计算的
         */
        DateFormat dateForma = new SimpleDateFormat("yyyy-MM-dd");
        //然后在dateformat中对Date时间类进行格式化
        String str = "2020-02-02";
        Date parse = dateForma.parse(str);
        System.out.println(parse);//Sun Feb 02 00:00:00 CST 2020
        //格式化Date时间为字符串
        String format = dateForma.format(parse);
        System.out.println(format);//2020-02-02

        //定义DateTimeFormatter格式化的模式
        DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        //转化这个模式的时间字符串为LocalDate对象
        LocalDate date = LocalDate.parse(str, pattern);
        System.out.println(date);//2020-02-02--->此时为LocalDate对象.
        //转化LocalTime时间类为指定类型的年月日表示
        System.out.println(date.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")));



    }
}
